#include "Extras/fuba_win.h"
#include "Extras/leitura.h"
#include "Vetor_Ponto/Vector.h"
#include "pseudoangulo.h"
#include <iostream>
using namespace std;

double angulo_orientado(const Vector& v)
{
    double resultado = anguloGrau(v,Vector("1.0,0.0"));
    if (pseudoangulo(v) > 4) resultado = 360 - resultado;
    return(resultado);
}

double angulo_mc(const Vector& v)
{
    Vector u(v);
    // Trocar os valores das coordenadas do vetor "u":
    if (u.get_dimensao() >= 2)
    {
        double aux = u(0);
        u(0) = u(1);
        u(1) = aux;
    }
    double angulo = angulo_orientado(u);
    if (angulo > 180) return(360 - angulo);
    return(-angulo);
}

int main()
{
    while(true)
    {
        limpar_tela();
        cout<<endl;
        vector<Point> pontos = ler("Entradas/coordenadas.txt");
        //for(vector<Point>::iterator p=pontos.begin() ; p<pontos.end() ; p++){(*p).imprimir();cout<<endl;}
        if (pontos.size() >= 2)
        {
            cout<<"* Origem    : ";pontos[0].imprimir();cout<<endl;
            cout<<"* Destino   : ";pontos[1].imprimir();cout<<endl;
            cout<<"* Distancia : "<<(pontos[1] - pontos[0]).norma()<<endl;
            cout<<"* Angulo    : "<<angulo_mc(pontos[1] - pontos[0])<<endl;
        }
        cout<<endl;
        pausar();
    }
    return(0);
}
